"""
类：
    类有一个名为 __init__() 的特殊方法（构造方法），该方法在类实例化时会自动调用
    self 代表类的当前实例，而非类，调用方法时自动传入（不需要手写），通过 self 访问实例的属性和方法
    类变量可以通过类名或实例名访问，而实例变量只能通过实例名来访问
"""


# 定义一个类，要求类名首字母大写
class Cat:
    legs = 4  # 类变量（所有猫都有4条腿）

    # 构造函数（初始化函数）
    def __init__(self, name, color):
        self.name = name  # 实例变量
        self.color = color

    # 方法（行为）
    def back(self):
        print(f"{self.name}:喵喵喵！")


# 实例化一个类（对象）
my_cat = Cat("大橘", "橘色")
my_cat.back()
print(Cat.legs)  # 通过类名方法
print(my_cat.legs)  # 通过实例方法
print(my_cat.name)


class Persian(Cat):
    def back(self):
        print(f"{self.name}有{self.legs}腿:瞄~")


you_cat = Persian("波斯", "黑色")
you_cat.back()

